package com.xunfang.utils;

import cn.hutool.jwt.JWT;
import cn.hutool.jwt.JWTUtil;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;

import javax.servlet.http.HttpServletRequest;
import java.util.Map;

@Component
public class JwtTemplate {

    /**
     * 密钥
     */
      private final byte [] pwd = "1234".getBytes();

    /**
     * 创建token
     * 不设置token的有效时间，通过redis来设置token的有效时间
     * @param payload
     * @return
     */
    public String createToken(Map<String,Object> payload){
        //参数1：是载荷对象
        //参数2：加密使用的 秘钥
       return JWTUtil.createToken(payload,pwd);
    }

    /**
     * 解析token
     * @param token  要解析的token
     * @param name  载荷的名称
     * @return
     */
    public Object parseToken(String token,String name){
        JWT jwt = JWTUtil.parseToken(token);
        return jwt.getPayload(name);
    }

    /**
     * 验证token
     * 通过私钥验签
     * @param token
     */
    public boolean verifyToken(String token){
        return JWTUtil.verify(token,pwd);
    }
}